package com.zxp.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zxp.server.dto.BlogForm;
import com.zxp.server.dto.BlogInfo;
import com.zxp.server.dto.RespPageBean;
import com.zxp.server.vo.Blog;
import com.zxp.server.vo.User;
import org.springframework.transaction.annotation.Transactional;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 朱小皮
 * @since 2022-05-14
 */
public interface IBlogService extends IService<Blog> {

    /**
     * @Description 发布博客
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    void postBlog(BlogForm blogForm);

    @Transactional
    void editBlog(BlogForm blogForm);

    /**
     * @Description 获取博客信息
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    RespPageBean getBlogInfos(Integer currentPage, Integer size,Blog blog);


    /**
     * @Description 根据用户获取发布状态博客
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    RespPageBean getReleaseBlogInfosByUser(Integer currentPage, Integer size, User user);

    /**
     * @Description 根据用户获取发布状态博客
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    RespPageBean getDraftBlogInfosByUser(Integer currentPage, Integer size, User user,Blog blog);

    /**
     * @Description 根据id获取博客详情（html格式内容）
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    BlogInfo getBlogInfoById(Integer blogId);


    /**
     * @Description 增加浏览量 （+1）
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    BlogInfo addView(BlogInfo blogInfo);




    /**
     * @Description 根据id删除博客
     * @Author 朱小皮
     * @Date 2022/5/28
     */
    void deleteBlogById(Integer blogId,Integer userId);

}
